#include <stdio.h>  
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/wait.h>
#include <string.h>
#include <stdlib.h>
int main()
{
    /*创建管道*/
    int pipefd[2] = {0};
    int ret = pipe(pipefd);
    if(ret == -1)
    {
        perror("pipe error");
        _exit(-1);
    }
    /*创建子进程*/
    pid_t pid = fork();
    if(pid < 0)
    {
        perror("fork error");
        exit(-1);
    }
    else if(pid == 0)
    {
        /*子进程*/
        /*向管道中读取数据*/
        char buffer[64] = {0};
        /*read函数是一个阻塞函数 会阻塞，直到有数据可读*/
        int readbytes=read(pipefd[0],buffer,sizeof(buffer)-1);
        printf("readbytes= %d,\t buffer = %s\n",readbytes,buffer);
    }
    else
    {
        /*父进程*/
        /*父进程负责写*/
        sleep(100);
        char * buffer = "以梦为马，不负韶华";
        /*向管道写入数据*/
        write(pipefd[1],(const void*)buffer,strlen(buffer));
    }
    return 0;
} 
